home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
comm2
/
zpont311.lha
/
zpoint-3.11
/
Rexx
/
KillAuthorGui.zprx
< prev
next >
Wrap
Text File
|
1995-03-09
|
7KB
|
304 lines
/*
KillUser.rexx 1.0 (16.1.94) by Ueli Kaufmann
ARexx skript für Zodiac's Point V37.113ß und apig.library
^^^^
(befindet sich auf FishDisk 634)
Nutzen:
-------
'Enfernt' User mittels Such-Pattern aus Brettern.
*/
/* benoetigte Libraries laden */
if(~show('l',"rexxsupport.library")) then
x = addlib("rexxsupport.library",0,-30,0)
if(~show('l',"apig.library")) then
x = addlib("apig.library",0,-30,0)
/* apig vorbereiten */
call Set_APIG_Globals()
idNME = 1 /* Gadget-ID fuers Namen-Gadget */
idCYC = 2 /* Gadget-ID fuers Mode-Gadget */
idSTR = 3 /* Gadget-ID fuers Start-Gadget */
screen = LockPubScreen("ZPoint") /* gonna put our window */
/* upon ZPoint screen */
if screen = null() then
do
ADDRESS "rexx_ced"
OKAY1 "ZPoint ist noch nicht gestartet.."
exit 10
end
ADDRESS "ZPoint"
OPTIONS RESULTS
scrvinfo = GetVisualInfo(screen) /* NewGadgets need this */
scrfont = GETVALUE(screen,40,4,'p') /* NewGadgets need this */
/* points to TextAttr */
glistpointer = AllocVec(4,MEMF_CLEAR) /* a pointer for context */
conxgad = CreateContext(glistpointer)
prevGadget = conxgad
/* Namen String-Gadget */
/*************************/
newgadx = MakeNewGadget(scrvinfo,scrfont,90,18,260,14,"Pattern:",
,null(),idNME,null())
msgAddr = ""
WHICHLEVEL
level = RESULT
if level = "BOARD" then
do
MESSAGEINFO AUTHOR /* StringGadget mit dem akt. Namen fuellen */
msgAddr = RESULT
end
prevGadget = CreateGadget(STRING_KIND,prevGadget,newgadx,
,GTST_MaxChars, 80,
,GTST_String, msgAddr,
,TAG_DONE,0)
/*************************/
call SetNewGadget(newgadx,scrvinfo,scrfont,16,40,56,12,"Start",
,null(),idSTR,null())
prevGadget = CREATEGADGET(BUTTON_KIND,prevGadget,newgadx,
,TAG_DONE,0)
/*************************/
call SetNewGadget(newgadx,scrvinfo,scrfont,90,40,260,12,null(),
,null(),idCYC,null())
theLabels = build_labels()
prevGadget = CREATEGADGET(CYCLE_KIND,prevGadget,newgadx,
,GTCY_LABELS, theLabels,
,TAG_DONE,0)
/*************************/
wintitle = "ZPoint Aufräumen"
winidcmp = CLOSEWINDOW+GADGETUP
winflags = WINDOWCLOSE+WINDOWDRAG+WINDOWDEPTH+ACTIVATE
portname = "ZPOINT_KILLMSG"
p = openport(portname)
/* open window, last parm in OPENWINDOW call points to our gadgets */
window = OpenWindow(portname,0,0,366,60,0,1,winidcmp,winflags,wintitle,
,screen,0,null(),null(),conxgad)
call UnlockPubScreen(null(),screen)
call GT_RefreshWindow(window,null()) /* need after opening window */
/**********************************/
exitme = 0
do while exitme = 0
x = waitpkt(portname)
do forever
msg = getpkt(portname)
if msg = '0000 0000'x
then leave
msgclass = getarg(msg,0)
msgcode = getarg(msg,1)
msggadadr= getarg(msg,8)
msggadid = getarg(msg,9)
x = reply(msg,0)
select
when msgclass = CLOSEWINDOW then /* Close-Gadget */
exitme = 1
when msgclass = GADGETUP then /* Gadget-UP */
do
select
when msggadid = idNME then
do
msgAddr = GETSTRGAD(window,idNME,null())
/*
success = 0
WHICHLEVEL
level = RESULT
if level = "MAINMENU" then
do
if allBoards = 0 then
do
BOARDMENU
REQUESTNOTIFY "Bitte stellen Sie den Nachrichtenbalken" '0a'x "auf das zu bearbeitende Brett..")
end
else
do
BOARDMENU /* ins Brettmenu steppen */
JUMPTOBOARD 4 /* Balken aufs erste oeffentliche Brett stellen */
ENTERBOARD /* und eintauchen */
success = 1
end
end
else /* boardmenu oder board */
do
if level = "BOARD" then
do
if allBoards = 0 then
do
JUMPTOMESSAGE 1
success = 1
end
else
do
BOARDMENU /* ins Brettmenu steppen */
JUMPTOBOARD 4 /* Balken aufs erste oeffentliche Brett stellen */
ENTERBOARD /* und eintauchen */
success = 1
end
end
else /* boardmenu */
do
ENTERBOARD /* und eintauchen */
success = 1
end
end
if success ~= 0 then
*/
x = kill_user()
end
when msggadid = idCYC then
do
allBoards = msgcode
if allBoards = 0 then
REQUESTNOTIFY "alle Bretter"
else
REQUESTNOTIFY "aktuelles Brett"
end
when msggadid = idSTR then
do
x = kill_user()
end
otherwise
nop
end
end
otherwise
nop
end
end
end
call CloseWindow(window)
call FreeVisualInfo(scrvinfo)
call FreeGadgets(conxgad)
call FreeThis(newgadx)
call freethis(theLabels)
call FreeVec(glistpointer)
exit
kill_user:
cnt = 0
JUMPTOMESSAGE 1 /* Balken auf oberste Nachricht stellen */
exitme = 0
lstring = "Name " || msgAddr
do while exitme = 0
JUMPTOMESSAGE lstring
if rc ~= 0 then
do
say "gefunden"
DELETE ONE
DOWN /* sonst gibts 'ne nette Endlos-Schleife :( */
end
else
do
say "addio"
exitme = 1
end
cnt = cnt + 1
if cnt = 50 then
do
say "Endlos-Schleife.. :-("
exitme = 1
end
end
exitme = 0
return(0)
build_labels:
mlabels = MAKEPOINTER(0,0,12,MEMF_CLEAR) /* an array of 3 pointers */
/* 4bytes * 3 = 12 */
/* label text */
ltxt = "Alle Bretter bearbeiten"
/* buffer for label text, the memory is owned by mlabels */
lbuf = MAKEPOINTER(mlabels,0,length(ltxt)+1,MEMF_CLEAR)
/* copy label text into buffer */
call export(lbuf,ltxt)
/* set array slot to lbuf address */
call SETVALUE(mlabels,0,4,'p',lbuf)
/******/
/* label text */
ltxt = "Aktuelles Brett bearbeiten"
/* buffer for label text, the memory is owned by mlabels */
lbuf = MAKEPOINTER(mlabels,0,length(ltxt)+1,MEMF_CLEAR)
/* copy label text into buffer */
call export(lbuf,ltxt)
/* set array slot to lbuf address */
call SETVALUE(mlabels,4,4,'p',lbuf)
return mlabels